from time import sleep,ctime
import _thread
loops=[4,2]
def loop(nloop,nsec,lock):
    print("start loop",nloop,"at:",ctime())
    sleep(nsec)
    print("loop",nloop,"done at:",ctime())
    #解锁
    lock.release()

def main():
    print('starting at:',ctime())
    locks=[]
    nloops=range(len(loops))
#创建一个锁
    for i in nloops:
        lock=_thread.allocate_lock()
        lock.acquire()
        locks.append(lock)
#传递循环号,睡眠时间.
    for i in nloops:
        _thread.start_new_thread(loop,(i,loops[i],locks[i]))
#等待那些没有解锁的对象.
    for i in nloops:
        while locks[i].locked():pass

    print('all Done at:',ctime())

if __name__=='__main__':
    main()